const path = require('path');
module.exports = {
  // 基本路径
  publicPath: process.env.NODE_ENV === 'production' ? '' : '/',
  // 输出文件目录
  outputDir: process.env.NODE_ENV === 'production' ? 'dist' : 'devdist',
  filenameHashing: false,
  // eslint-loader 是否在保存的时候检查
  lintOnSave: false,
  /**
   * webpack配置,see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
   **/
  chainWebpack: (config) => {},
  configureWebpack: (config) => {
    config.resolve = { // 配置解析别名
      extensions: ['.js', '.json', '.vue'],  //自动添加文件名后缀
      alias: {
        // 'vue':'vue/dist/vue.js',
        '@': path.resolve(__dirname, './src'),  //@代表的是src目录地址
        '@c': path.resolve(__dirname, './src/components'),  //@c代表的是src目录地址下的components
        '@u': path.resolve(__dirname, './src/utils'),  //@u代表的是src目录地址下的utils
      }
    }
  },
  // 生产环境是否生成 sourceMap 文件
  productionSourceMap: false,
  // css相关配置
  // css: {
  //   // 是否使用css分离插件 ExtractTextPlugin
  //   extract: true,
  //   // 开启 CSS source maps?
  //   sourceMap: false,
  //   // css预设器配置项
  //   loaderOptions: {
  //   // 如发现 css.modules 报错，请查看这里：http://www.web-jshtml.cn/#/detailed?id=12
  //   scss: { 
  //       prependData: `@import "~@/styles/main.scss";`
  //   }
  //   },
  //   // 启用 CSS modules for all css / pre-processor files.
  //   // requireModuleExtension: true
  //   modules: false
  // },


  // //less配置
  // pluginOptions: {
  //   'style-resources-loader': {
  //     preProcessor: 'less',
  //     patterns: [
  //       // 这个是加上自己的路径,不能使用(如下:alias)中配置的别名路径
  //       path.resolve(__dirname, './src/styles/public.less')
  //     ]
  //   }
  // },
  chainWebpack: (config) => {
	  const oneOfsMap = config.module.rule("less").oneOfs.store;
	  oneOfsMap.forEach(item => {
	    item
	      .use("style-resources-loader")
	      .loader("style-resources-loader")
	      .options({
	        // or an array : ["./path/to/vars.less", "./path/to/mixins.less"] 这里的路径不能使用@，否则会报错
	        patterns: "./src/styles/public.less"
	      })
	      .end()
	  })
	},

  // css: {
  //   loaderOptions: {
  //     less: {
  //       data: `
  //         @import "@/styles/public.less"
  //       `
  //     }
  //   }
  // },
  // use thread-loader for babel & TS in production build
  // enabled by default if the machine has more than 1 cores
  parallel: require('os').cpus().length > 1,
  /**
   *  PWA 插件相关配置,see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
   */
  pwa: {},
  // webpack-dev-server 相关配置
  devServer: {
    open: false, // 编译完成是否打开网页
    host: '0.0.0.0', // 指定使用地址，默认localhost,0.0.0.0代表可以被外界访问
    port: 8080, // 访问端口
    https: false, // 编译失败时刷新页面
    hot: true, // 开启热加载
    hotOnly: false,
    proxy: null, // 设置代理
    proxy: {
      '/api': {
        // 此处的写法，目的是为了 将 /devApi 替换成
        target: 'http://127.0.0.1:8808/',
        // 允许跨域
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }
    },
    overlay: { // 全屏模式下是否显示脚本错误
      warnings: true,
      errors: true
    },
    before: app => {
    }
  },
  /**
   * 第三方插件配置
   */
  pluginOptions: {}
}